iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
Python

一起來用 Snakify 練練手系列 第 27

【一起來用 Snakify 練練手】Day27 補充 【turtle 模組】

  • 分享至 

  • xImage
  •  

Python turtle 模組

Turtle 是 Python 中內建的一個圖形模組,特別適合用來教學,幫助初學者理解圖形的繪製邏輯。透過 turtle,你可以控制一隻「海龜」在畫布上移動、旋轉,並繪製各種形狀。這個模組非常適合學習如何處理座標系、循環結構以及函數。

1. turtle 的安裝

Turtle 是 Python 內建的模組,無需額外安裝。只要有 Python 環境,便可以直接使用。

import turtle

2. 基本操作

2.1 建立畫布和控制「海龜」

首先,我們需要創建一個畫布,並控制海龜在上面繪圖。以下範例展示了如何讓海龜前進和轉彎。

import turtle

# 創建一隻海龜
t = turtle.Turtle()

# 移動海龜
t.forward(100)  # 前進 100 像素
t.right(90)     # 右轉 90 度
t.forward(100)  # 繼續前進 100 像素

# 結束圖形
turtle.done()

這段代碼會在畫布上畫出兩條相互垂直的直線。forward() 方法讓海龜前進,而 right() 方法則控制海龜的旋轉。

2.2 常用命令

  • forward(distance):讓海龜向前移動指定的距離。
  • backward(distance):讓海龜向後移動指定的距離。
  • right(angle):讓海龜向右旋轉指定的角度(度數)。
  • left(angle):讓海龜向左旋轉指定的角度(度數)。
  • penup():讓海龜抬起筆,移動時不會畫圖。
  • pendown():讓海龜放下筆,移動時會畫圖。

2.3 設置畫筆屬性

可以自定義畫筆的顏色、寬度等屬性。

範例:

import turtle

t = turtle.Turtle()

# 設置畫筆顏色和寬度
t.pensize(3)
t.pencolor("blue")

# 繪製正方形
for _ in range(4):
    t.forward(100)
    t.right(90)

turtle.done()

這段程式碼將繪製一個藍色的正方形,每條邊長為 100 像素,畫筆寬度為 3。

3. 繪製圖形範例

3.1 繪製正多邊形

我們可以使用 for 迴圈來繪製不同的多邊形,例如三角形、正方形、五邊形等。

範例:繪製五邊形

import turtle

t = turtle.Turtle()

# 繪製五邊形
for _ in range(5):
    t.forward(100)
    t.right(72)  # 360 / 5 = 72 度

turtle.done()

這段程式碼通過迴圈讓海龜繪製出一個五邊形。五邊形的內角總和為 360 度,因此每次旋轉 72 度即可繪製出完整的圖形。

3.2 繪製圓形

可以使用 circle() 方法來讓海龜繪製圓形。

範例:

import turtle

t = turtle.Turtle()

# 繪製半徑為 50 的圓
t.circle(50)

turtle.done()

這段代碼讓海龜繪製一個半徑為 50 像素的圓形。

4. 使用遞迴繪製圖形

Python 的 turtle 模組可以結合遞迴技術來繪製更複雜的圖形,例如分形。

範例:繪製分形樹

import turtle

t = turtle.Turtle()
t.left(90)  # 初始方向向上
t.speed(1)

# 定義繪製樹的遞迴函數
def draw_tree(branch_length):
    if branch_length > 5:
        t.forward(branch_length)
        t.right(20)
        draw_tree(branch_length - 15)  # 繪製右子樹
        t.left(40)
        draw_tree(branch_length - 15)  # 繪製左子樹
        t.right(20)
        t.backward(branch_length)

# 繪製主幹和樹
draw_tree(100)
turtle.done()

這段程式碼繪製了一棵分形樹,使用遞迴來模擬每個分支的分裂。

5. 自動填充顏色

可以使用 begin_fill()end_fill() 方法來自動填充封閉區域的顏色。

範例:填充正方形

import turtle

t = turtle.Turtle()

# 設置填充顏色
t.fillcolor("yellow")

# 開始填充
t.begin_fill()

# 繪製正方形
for _ in range(4):
    t.forward(100)
    t.right(90)

# 結束填充
t.end_fill()

turtle.done()

這段代碼將繪製一個填充為黃色的正方形。

6. 設置速度

可以使用 speed() 方法來調整海龜的移動速度。速度範圍從 1(最慢)到 10(最快),也可以使用 "fastest""fast""normal""slow""slowest" 這些值。

範例:

import turtle

t = turtle.Turtle()
t.speed("fastest")  # 設置為最快速度

# 繪製一個快速的圓
t.circle(100)

turtle.done()

7. 總結

Python 的 turtle 模組是一個非常有趣的工具,適合用來學習圖形編程和數學概念。通過基本的操作指令和畫筆屬性的調整,我們可以創建簡單或複雜的圖形。對於初學者來說,turtle 不僅提供了編程練習的機會,還幫助理解座標、循環結構、遞迴等概念。


上一篇
【一起來用 Snakify 練練手】Day26 Lesson 11 練習題參考解答
下一篇
【一起來用 Snakify 練練手】Day28 python 的各種模組
系列文
一起來用 Snakify 練練手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言